import store from 'store/store'
import { blackRoutes } from '@/util/blackRoute'
import { Message } from "element-ui";
export function defined(router) {
    let flag = true
    //全局路由守卫  前置守卫
    router.beforeEach(async (to, from, next) => {
        if (flag) {
            //只在页面刷新的时候执行一次
            flag = false
            await store.dispatch('autoLogin', to)
        }
        //严谨：判断用户信息是否存在，是否处于登录状态，Id和name可能会因为一些操作而删除
        //不管页面刷新还是路由切换都会执行
        if (JSON.stringify(store.state.user.userInfo) === '{}') {
            //可能是从“ / ”跳转的，所以需要判断to.name是否存在
            let rootName = to.name
            if (!blackRoutes.includes(rootName)) {
                next()
            } else {
                //清楚提醒
                Message.closeAll();
                Message({
                    message: '您还未登录',
                    type: 'error'
                })

            }
            return;
        }
        //只有处于登录状态才会执行到这个代码
        next()
    })

    //全局路由守卫  解析守卫
    router.beforeResolve((to, from, next) => {
        next()
    })

    //全局路由守卫 后置守卫
    router.afterEach(() => { })
}